package org.redmaple.core.template.dao;

import java.util.List;

import org.redmaple.core.retrieving.RedmapleCriteria;
import org.redmaple.core.retrieving.Sort;
import org.redmaple.core.support.Page;
import org.redmaple.core.support.PageHead;
import org.redmaple.core.template.model.BaseModel;

/**
 * 包含分页的一般化DAO接口
 * 
 * @author Xiangyun
 *
 * @param <T>
 */
public interface IPageDao<T extends BaseModel> extends IGenericDao<T> {

	/**
	 * 根据检索条件、排序规则及分页信息来查找实体对象的列表
	 * 
	 * @param criteria
	 *            检索条件
	 * @param orderValues
	 *            排序规则
	 * @param pageInfo
	 *            分页信息
	 * @return 查找到的实体对象的页集合
	 */
	public Page<T> findPageByCondition(RedmapleCriteria criteria,
			List<Sort> sortValues, PageHead pageInfo);
}
